Skip to content

Feat/grpc#8

Open
markovejnovic wants to merge 1 commit intostagedfrom
feat/grpc
Open

Feat/grpc#8
markovejnovic wants to merge 1 commit intostagedfrom
feat/grpc

Conversation

@markovejnovic
Copy link
Collaborator

No description provided.

@mesa-dot-dev
Copy link

mesa-dot-dev bot commented Feb 17, 2026

Mesa Description

This PR introduces a new gRPC-based data plane for performing fine-grained, stateful Version Control System (VCS) operations. The existing REST-like API is not well-suited for high-frequency operations like building a commit from multiple file changes. This new gRPC service provides a high-performance, low-latency alternative, enabling a more efficient workflow for creating and modifying changes before they are committed.

Key Changes:

  • gRPC API Definition (vcs.proto):

    • A new Protobuf schema defines three core services:
      • ControlService: For mutations (e.g., creating changes, applying file operations).
      • DataService: For read-only access (e.g., fetching commits, listing trees).
      • BlobTransferService: For efficient large object I/O.
  • New ChangeClient:

    • Introduced a new high-level Rust client for interacting with the ControlService.
    • It provides methods to create a "change" from a branch, perform file operations (create, modify, delete, move) on it, and finally snapshot the result into a new commit.
  • Build & Integration:

    • The build.rs script now automatically compiles the .proto file into Rust client code using tonic_prost_build.
    • Core gRPC dependencies (tonic, prost, tokio) have been added to the project.
  • Client Configuration Refactor:

    • To integrate the new client configuration, many existing API clients were refactored to access configuration via a standardized path (&self.repo.org.client.config). This accounts for the large number of modified files.
  • Testing:

    • A new suite of high-level integration tests has been added to validate the core functionality of the ChangeClient.
    • The test setup is now configured to initialize the MesaClient with a gRPC endpoint, configurable via the MESA_TEST_GRPC_ENDPOINT environment variable.

Description generated by Mesa. Update settings

Copy link

@mesa-dot-dev mesa-dot-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performed full review of 0141cd1...7b17121

Analysis

  1. Build script requires proto sources at compile time, but these sources are not versioned, which will break downstream builds.
  2. gRPC runtime dependencies are added unconditionally without feature gates, forcing all consumers to inherit a heavy async stack before any gRPC API surface exists.
  3. The PR leaves the application-layer implementation incomplete - needs either committed proto definitions with generated bindings or feature-gated build steps.
  4. Current implementation will prevent the existing REST client from building until the gRPC components are fully implemented.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

0 files reviewed | 1 comments | Edit Agent SettingsRead Docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant